//
//  QWNetworkAgentDataSource.h
//  Pods
//
//  Created by ZhangYanhua on 15/12/16.
//
//

#ifndef QWNetworkAgentDataSource_h
#define QWNetworkAgentDataSource_h

#import <AFNetWorking/AFNetworking.h>
#import "QWNetworkHelpers.h"

typedef void (^AFConstructingBlock)(id<AFMultipartFormData> formData);

@protocol QWNetworkAgentDataSource <NSObject>
@required

// 配置URL参数
/// 请求的URL
- (NSString *)requestUrl;

/// 请求的CdnURL
- (NSString *)cdnUrl;

/// 请求的BaseURL
- (NSString *)baseUrl;

/// 是否使用CDN的host地址
- (BOOL)useCDN;


// 配置请求参数
/// 请求的连接超时时间，默认为60秒
- (NSTimeInterval)requestTimeoutInterval;

/// 请求的参数列表
- (NSMutableDictionary *)requestArgument;

/// Http请求的方法
- (QWRequestMethod)requestMethod;

/// 请求的SerializerType
- (QWRequestSerializerType)requestSerializerType;

/// 请求的Server用户名和密码
- (NSArray *)requestAuthorizationHeaderFieldArray;

/// 在HTTP报头添加的自定义参数
- (NSDictionary *)requestHeaderFieldValueDictionary;


// 配置下载，上传参数
/// 当POST的内容带有文件等富文本时使用
- (AFConstructingBlock)constructingBodyBlock;

/// 当需要断点续传时，指定续传的地址
- (NSString *)resumableDownloadPath;

@end

#endif /* QWNetworkAgentDataSource_h */
